// 导航守卫放这里
// 注释的留下需要的去掉不需要的

import router from './router'
import store from './store'
// import { Message } from 'element-ui'
// import NProgress from 'nprogress' // progress bar
// import 'nprogress/nprogress.css' // progress bar style
// import { getToken } from '@/utils/auth' // get token from cookie
// import getPageTitle from '@/utils/get-page-title'

// NProgress.configure({ showSpinner: false }) // NProgress Configuration

// const whiteList = ['/login'] // no redirect whitelist

// 确定有没有token
// 有token
// 去往登录页跳转首页
// 去往首页及其他页面，放行
// 查看有没有用户信息，没有先获取再放行
// 没有token
// 去往登录404放行
// 去往其他页面跳转登录
router.beforeEach(async(to, from, next) => {
  if (store.state.user.token) {
    if (to.path === '/login') {
      next('/')
    } else {
      if (!store.state.user.userInfo.id) {
        await store.dispatch('user/getuserInfo')
        // 获取用户权限
        await store.dispatch('user/getuserperm')
        // 传入当前用户权限用于找出动态路由
        const menus = store.state.user.userPerm.menus
        const routes = await store.dispatch('perm/getmenus', menus)
        // 追加到路由中
        router.addRoutes([...routes, { path: '*', redirect: '/404', hidden: true }])
        // 强制跳转
        next(to.path)
        console.log(404040, to.path)
        return
      }
      next()
    }
  } else {
    // 没有token
    const Arraypath = ['/login', '/404']
    if (Arraypath.includes(to.path)) {
      next()
    } else {
      next('/login')
    }
  }
})
